package com.dadao.mall.gateway.route;

import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 路由规则类
 */
@Slf4j
@Configuration
public class MallRoute {

    /**
     * 路由
     * 1. 将/api/* 的请求转发mall-provider-admin中
     * 1. 将/web/* 的请求转发mall-web中
     * @param builder
     * @return
     */
    @Bean
    public RouteLocator myRoutes(RouteLocatorBuilder builder) {
        //lb://开头（lb代表从注册中心获取服务)
        return builder.routes()
                .route("api",p->p.path("/api/*")
//                        .filters(f->f.hystrix())
                        .uri("lb://mall-provider-admin")
                        .order(0))
                .route("web",p->p.path("/web/*").uri("lb://mall-web"))
                .build();
    }

    /**
     * 简单的路由功能
     * 请求地址 http://localhost:9020/baidu/    将会进入百度
     * 请求地址 http://localhost:9020/163/    将会进入163
     * @param builder
     * @return
     */
//    @Bean
//    public RouteLocator myRoutes(RouteLocatorBuilder builder) {
//        return builder.routes()
//                .route("api",p->p.path("/api/*").uri("https://www.baidu.com")
//                .order(0)
//                ).route("163",p->p.path("/163/*").uri("https://www.163.com"))
//                .build();
//
//    }
}
